home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / c / hzip.com / HUNZIP.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1991-01-08  |  1002 b   |  51 lines

  1. ////////////////////////////////////////////////////////
  2. // hzip.cpp: Huffman file decompressor
  3. // Copyright (c) 1991 Azarona Software
  4. // All rights reserved. 
  5. ////////////////////////////////////////////////////////
  6.  
  7. #include <stdio.h>
  8. #include <string.h>
  9. #include "huffdec.h"
  10.  
  11. main(int argc, char *argv[])
  12. {
  13.   FILE *f, *g;
  14.  
  15.   if (argc < 2) {
  16.      printf("Usage: hunzip infile [outfile]\n");
  17.      return 0;
  18.   }
  19.   
  20.   f = fopen(argv[1], "rb");
  21.   if (f == NULL) {
  22.      printf("Couldn't open input file: %s\n", argv[1]);
  23.      return 0;
  24.   }
  25.  
  26.   huff_decoder fdec;
  27.  
  28.   if (fdec.connect(f, 0L) == 0) {
  29.      printf("Not an hzip'ed file\n");
  30.      return 0;
  31.   }
  32.  
  33.   if (argc > 2) {
  34.      g = fopen(argv[2], "wb");
  35.      if (g == NULL) {
  36.        printf("Couldn't create output file: %s\n", argv[2]);
  37.        return 0;
  38.     }
  39.   }
  40.   else g = stdout;
  41.  
  42.   while(1) {
  43.     int c = fdec.get_next_char();
  44.     if (c == -1) break;
  45.     fputc(c, g);
  46.   }
  47.  
  48.   fclose(f);
  49.   fclose(g);
  50. }
  51.